package zzs.generalframework.console.core.parameter.commonparameter.censusregistertype.service;

import java.util.List;

import zzs.generalframework.common.core.parameter.commonparameter.censusregistertype.CensusRegisterTypeBO;
import zzs.generalframework.common.core.parameter.commonparameter.censusregistertype.CensusRegisterTypeInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.parameter.commonparameter.censusregistertype.service
 * @author zzs
 * @date 2018年2月2日
 * @version 1.0
 */
public interface ICensusRegisterTypeService
{

	/**
	 * 保存户口类别信息
	 *
	 * @param censusRegisterType
	 * @return
	 */
	public ConsoleReturnBO saveCensusRegisterType(CensusRegisterTypeBO censusRegisterTypeBO);

	/**
	 * 保存户口类别信息列表
	 *
	 * @param censusRegisterTypeBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveCensusRegisterType(List<CensusRegisterTypeBO> censusRegisterTypeBOList) throws ConsoleException;

	/**
	 * 获取户口类别信息
	 *
	 * @param censusRegisterTypeInfo
	 * @return
	 */
	public ConsoleReturnBO getCensusRegisterType(CensusRegisterTypeInfo censusRegisterTypeInfo);

	/**
	 * 获取户口类别信息列表
	 *
	 * @param censusRegisterTypeInfo
	 * @return
	 */
	public ConsoleReturnBO listCensusRegisterType(CensusRegisterTypeInfo censusRegisterTypeInfo);

	/**
	 * 更新户口类别信息
	 *
	 * @param censusRegisterTypeBO
	 * @return
	 */
	public ConsoleReturnBO updateCensusRegisterType(CensusRegisterTypeBO censusRegisterTypeBO);

	/**
	 * 更新户口类别信息列表
	 *
	 * @param censusRegisterTypeBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateCensusRegisterType(List<CensusRegisterTypeBO> censusRegisterTypeBOList) throws ConsoleException;

	/**
	 * 删除户口类别信息
	 *
	 * @param censusRegisterTypeBO
	 * @return
	 */
	public ConsoleReturnBO removeCensusRegisterType(CensusRegisterTypeBO censusRegisterTypeBO);

	/**
	 * 删除户口类别信息列表
	 *
	 * @param censusRegisterTypeBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeCensusRegisterType(List<CensusRegisterTypeBO> censusRegisterTypeBOList) throws ConsoleException;

	/**
	 * 统计户口类别信息
	 *
	 * @param censusRegisterTypeBO
	 * @return
	 */
	public Long countCensusRegisterType(CensusRegisterTypeBO censusRegisterTypeBO);

}
